/** 全部不允许编辑 */
export const noEditEntire = ["统计计算", "个人社保公积金", "专项附加扣除", ];

/** 部分可编辑 > 小项可编辑 */
export const noEditPartial = ["加班费", "请假扣款"];

/**
 * 处理模板数据
 * @param {Array} arr 需要处理的数据
 * @param {Boolean} bol 是否保留原本的isVisible值
 * @returns Array
 * 
 * {
 *  isNoEdit 不可编辑,单可以选择
 *  isNoShow 不显示
 * }
 */
export const handleTemplateVisible = (arr = [], bol = false) => {
  const newArr = JSON.parse(JSON.stringify(arr));
  newArr.forEach((item) => {
    item.isVisible = bol || !item.isCustom;
    item.columnList.forEach((col) => {
      col.isVisible = bol || !col.isCustom;
    });
    if(noEditEntire.includes(item.name)) item.isNoShow = true;
    if (noEditPartial.includes(item.name)) item.isNoEdit = true;
  });
  return newArr;
};

/** 匹配汉字, 字母, 数字, 忽略大小写 */
export const RE = /[\u4e00-\u9fa5|a-z|0-9]/gi;

/** 判断特殊字符 */
export const checkRE = (str) => {
  let value = str;
  value.match(RE).forEach(n => value = value.replace(n, ""));
  return value.length;
};